<!DOCTYPE html>
<html>
<title>Service Workers: FetchEvent</title>
    <head>
        <link rel="help" href="https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#fetch-event-section">
        <script src="/resources/testharness.js"></script>
        <script src="/resources/testharnessreport.js"></script>

        <script src=/resources/WebIDLParser.js></script>
        <script src=/resources/idlharness.js></script>

    </head>
    <body>

<script type=text/plain id="idl_0">
[Constructor]
interface FetchEvent : Event {
  readonly attribute Request request;
  readonly attribute Client client; // The window issuing the request.
  readonly attribute Context context;
  readonly attribute boolean isReload;

  void respondWith(Promise<AbstractResponse> r);
  Promise<any> forwardTo(ScalarValueString url);
  Promise<any> default();
};

enum Context {
  "connect",
  "font",
  "img",
  "object",
  "script",
  "style",
  "worker",
  "popup",
  "child",
  "navigate"
};
</pre>

<!--
Service Workers use the `[FetchEvent][1]` interface for `[fetch][2]` event.

[1]: #fetch-event-interface
[2]: #fetch-event
-->


    <script type=text/plain id="untested_idls">
        interface Request {};
        interface Client {};
        interface AbstractResponse {};
        interface ScalarValueString {};
        interface Event {};
    </pre>

    <script>
        var idl_array = new IdlArray();
        idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
        idl_array.add_idls(document.getElementById("idl_0").textContent);
        idl_array.add_objects({
            FetchEvent: ["throw new Error ('No object defined for the FetchEvent interface')"],
            Context: ["throw new Error ('No object defined for the Context enum')"]
        });
        idl_array.test();
    </script>

    </body>
</html>

